package com.yanyeori.framework.elasticjob.configprop;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * ElasticJob配置注入Bean
 *
 * @author chenkuan 2020/8/19
 */
@Getter
@Setter
@ConfigurationProperties(prefix = "elasticjob")
public class JobConfigProps {
    //zookeeper服务地址，多个用,隔开
    private String zookeeperServer;
    //命名空间
    private String namespace;
    //等待重试的间隔时间的初始值,单位毫秒
    private int baseSleepTimeMilliseconds = 1000;
    //等待重试的间隔时间的最大值,单位毫秒
    private int maxSleepTimeMilliseconds = 3000;
    //最大重试次数
    private int maxRetries = 3;
    //会话超时时间,单位毫秒
    private int sessionTimeoutMilliseconds = 60000;
    //连接超时时间,单位毫秒
    private int connectionTimeoutMilliseconds = 15000;

    //本地job实例是否覆盖zookeeper缓存,boolean类型
    private boolean overwrite = true;
    //是否开启任务执行失效转移，开启表示如果作业在一次任务执行中途宕机，允许将该次未完成的任务在另一作业节点上补偿执行
    private boolean failover = false;
    //是否开启错过任务重新执行
    private boolean misfire = true;
    //作业是否禁止启动，可用于部署作业时，先禁止启动，部署结束后统一启动
    private boolean disabled = false;
}
